﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;

namespace WypożyczalniaV1
{
    class Zapytania
    {
        private string conf_mysql;
        public MySqlConnection conn;
        public MySqlCommand cmd;
        public MySqlDataReader czytaj;
        public Zapytania(string konfiguracja)
        {
            this.conf_mysql = konfiguracja;
            conn = new MySqlConnection(this.conf_mysql);
        }
        public bool sprawdz(string query)
        {
            cmd = new MySqlCommand(query, conn);
            conn.Open();
            czytaj = cmd.ExecuteReader();
            if (czytaj.Read() != false)
            {
                if (czytaj.IsDBNull(0) == true)
                {
                    cmd.Connection.Close();
                    czytaj.Dispose();
                    cmd.Dispose();
                    conn.Close();
                    return false;
                }
                else
                {
                    cmd.Connection.Close();
                    czytaj.Dispose();
                    cmd.Dispose();
                    cmd = null;
                    conn.Close();
                    return true;
                }

            }
            else
            {
                cmd.Connection.Close();
                conn.Close();
                return false;
            }

            
        }
        public void Dodaj_pozycje(string query)
        {
            cmd = new MySqlCommand(query, conn);
            conn.Open();
            cmd.ExecuteNonQuery();
            conn.Close();
            cmd = null;
        }
        public DataSet gen_tabel(string query,string nazwa_tabeli)
        {
            DataSet oset = new DataSet();
            MySqlDataAdapter adapter = new MySqlDataAdapter(query, conn);
            adapter.Fill(oset, nazwa_tabeli);
            return oset;
        }
        public string czytelnik(int id)
        {
            string uzytkownik;
            string query = "SELECT Imie, Nazwisko FROM czytelnicy WHERE idCzytelnicy='" + id + "';";
            cmd = new MySqlCommand(query, conn);
            conn.Open();
            czytaj = cmd.ExecuteReader();
            if (czytaj.Read())
            {
                uzytkownik = czytaj[0] + " " + czytaj[1];
                conn.Close();
                return uzytkownik;

            }
            conn.Close();
            return "#0";
            
            
        }
        public int identyfikator(string query)
        {
            int id;
            cmd = new MySqlCommand(query, conn);
            conn.Open();
            czytaj = cmd.ExecuteReader();
            if (czytaj.Read())
            {
                id = int.Parse(czytaj[0].ToString());
                conn.Close();
                return id;
                
            }
            conn.Close();
            return -99;
        }
        public int Dodaj_pozycje1(string query)
        {
            int bl;
            cmd = new MySqlCommand(query, conn);
            conn.Open();
            bl = cmd.ExecuteNonQuery();
            conn.Close();
            cmd = null;
            return bl;
        }
        public string Ean8_czytelnicy()
        {
            string KodEan8;
            string query = "SELECT KodEan8 FROM czytelnicy WHERE idCzytelnicy=( SELECT idCzytelnicy FROM czytelnicy GROUP BY idCzytelnicy DESC LIMIT 1)";
            cmd = new MySqlCommand(query, conn);
            conn.Open();
            czytaj = cmd.ExecuteReader();
            if (czytaj.Read())
            {
                KodEan8 = czytaj[0].ToString();
                conn.Close();
                return KodEan8;

            }
            conn.Close();
            return "#0";


        }
        public string[] tab(string query, int ilosc)
        {
            string[] tablica = new string[ilosc];
            cmd = new MySqlCommand(query, conn);
            conn.Open();
            czytaj = cmd.ExecuteReader();
            if (czytaj.Read())
            {
                for (int i = 0; i < ilosc; i++)
                {
                    tablica[i] = czytaj[i].ToString();
                }
                conn.Close();
                return tablica;
            }
            else
            {
                tablica[0] = "Error";
                conn.Close();
                return tablica;
            }
        }
        public string Autor(int id)
        {
            string uzytkownik;
            string query = "SELECT Imie, Nazwisko FROM Autorzy WHERE idAutorzy='" + id + "';";
            cmd = new MySqlCommand(query, conn);
            conn.Open();
            czytaj = cmd.ExecuteReader();
            if (czytaj.Read())
            {
                uzytkownik = czytaj[0] + " " + czytaj[1];
                conn.Close();
                return uzytkownik;

            }
            conn.Close();
            return "#0";


        }
        public string Ksiazka(int id)
        {
            string uzytkownik;
            string query = "SELECT Tytul FROM books WHERE idbooks='" + id + "';";
            cmd = new MySqlCommand(query, conn);
            conn.Open();
            czytaj = cmd.ExecuteReader();
            if (czytaj.Read())
            {
                uzytkownik = czytaj[0] + " " + czytaj[1];
                conn.Close();
                return uzytkownik;

            }
            conn.Close();
            return "#0";


        }
        public string Ean8_egzemplarz()
        {
            string KodEan8;
            string query = "SELECT KodEan8 FROM egzemplarz WHERE idegzemplarz=( SELECT idEgzemplarz FROM egzemplarz GROUP BY idegzemplarz DESC LIMIT 1)";
            cmd = new MySqlCommand(query, conn);
            conn.Open();
            czytaj = cmd.ExecuteReader();
            if (czytaj.Read())
            {
                KodEan8 = czytaj[0].ToString();
                conn.Close();
                return KodEan8;

            }
            conn.Close();
            return "#0";


        }
        public DateTime Data_Oddania(int idWyporzyczenia)
        {
            DateTime data_od = new DateTime();
            string query = "SELECT data_dk FROM wypozyczenie WHERE idwypozyczenia="+ idWyporzyczenia;
            cmd = new MySqlCommand(query, conn);
            conn.Open();
            czytaj = cmd.ExecuteReader();
            if (czytaj.Read())
            {
                data_od = Convert.ToDateTime(czytaj[0]);
                conn.Close();
                return data_od;
            }
            else
            {
                conn.Close();
                return data_od;
            }
        }
        public int[] tab(string query,string query_ile)
        {
            int n;
            int[] tablica;
            cmd = new MySqlCommand(query_ile, conn);
            conn.Open();
            czytaj = cmd.ExecuteReader();
            if (czytaj.Read())
            {
                n = int.Parse(czytaj[0].ToString());
                tablica = new int[n+1];
                conn.Close();
                cmd = null;
                czytaj = null;
                cmd = new MySqlCommand(query, conn);
                conn.Open();
                czytaj = cmd.ExecuteReader();
                int i = 0;
                while (czytaj.Read())
                {
                        tablica[i] = int.Parse(czytaj[i].ToString());
                        i++;
                }
                return tablica;
                
            }
            else
            {
                tablica = new int[0];
                tablica[0] = -99;
                return tablica;
            }

        }
       
    }

}
